package com.leetcode;


/**
 * 747.LargestNumberAtLeastTwiceOfOthers
 * 至少是其他数字的两倍大的最大数
 * 给你一个整数数组 nums ，其中总是存在 唯一的 一个最大整数 。

请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。
如果是，则返回 最大元素的下标 ，否则返回 -1 。

 */
public class L747LargestNumberAtLeastTwiceOfOthers {
  
    public void test1(){
        System.out.println("test");
        int[] nums = new int[]{1,0};
        // Arrays.sort(nums);
        System.out.println(dominantIndex(nums));
    }
    public int dominantIndex(int[] nums) {
        if(nums.length < 1)
            return -1;
        if(nums.length == 1)
            return 0;
        int largest = nums[0];
        int index = 0;
        int largest2nd = nums[0];
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] > largest) {
                largest2nd = largest;
                largest = nums[i];
                index = i;
            } else {
                if(largest2nd == largest){
                    largest2nd = nums[i];
                } else {
                    largest2nd = Math.max(largest2nd,nums[i]);
                }
            }
        }
        if(largest >= 2 * largest2nd)
            return index;
        return -1;
    }
    
}